package pl.pawluk.inz.dao;

import org.hibernate.Criteria;

import java.io.Serializable;
import java.util.List;

public interface IGenericDao<E, PK extends Serializable> {

    PK save(E newInstance);


    void update(E transientObject);


    void saveOrUpdate(E transientObject);


    void delete(E persistentObject);


    E findById(PK id);


    List<E> findAll();


    Long countByCriteria(Criteria dc);

}